#include "Joueur.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

void InitialisationJoueur(Joueur * j)
{
   (*j).bois = 50;
   (*j).nourriture = 0;
   (*j).nombre_unites = 0;
   (*j).nombre_batiments = 0;
   (*j).joueur_ou_IA = 0;
}

void ModificationReserveBois(Joueur * j, int ajout_supp_bois)
{
        (*j).bois = (*j).bois + ajout_supp_bois;
}

void ModificationReserveNourriture(Joueur * j, int ajout_supp_nourriture)
{
		(*j).nourriture = (*j).nourriture + ajout_supp_nourriture;       
}

void ModificationNombreUnites(Joueur * j, int ajout_supp_unites)
{ 
  		(*j).nombre_unites = (*j).nombre_unites + ajout_supp_unites;  
}

void ModificationNombreBatiments(Joueur * j, int ajout_supp_batiments)
{
   		(*j).nombre_batiments = (*j).nombre_batiments + ajout_supp_batiments;
}

void JoueurTestRegression()
{
	Joueur * jtest = (Joueur*) malloc (sizeof (Joueur));
	
	/* Vérification de la procédure InitialisationJoueur */
	InitialisationJoueur(jtest);
	assert ( (*jtest).bois == 50);
	assert ( (*jtest).nourriture == 0);
	assert ( (*jtest).nombre_unites == 0);
	assert ( (*jtest).nombre_batiments == 0);
	assert ( (*jtest).joueur_ou_IA == 0);
	
	/* Vérification de la procédure ModificationReserveBois */
	ModificationReserveBois(jtest, 50);
	assert( (*jtest).bois == 100);
	
	/* Vérification de la procédure ModificationReserveNourriture */
	ModificationReserveNourriture(jtest, 50);
	assert( (*jtest).nourriture == 50);
	
	/* Vérification de la procédure ModificationNombreUnites */
	ModificationNombreUnites(jtest, 1);
	assert( (*jtest).nombre_unites == 1);
	
	/* Vérification de la procédure ModificationNombreBatiments */
	ModificationNombreBatiments(jtest, 1);
	assert( (*jtest).nombre_batiments == 1);
	
	free(jtest);	
}
